# Author:Xiao yang
# 时间：1014-week07

# tuple 元组
# 元组是不可变的，所以不可以增删改。

t = 12345,54321,'hello!'
print(t)
print(type(t))

print()
# 书本p132-134 --> 提及元组的意义

vowels = ['a','e','i','o','u']
print(vowels)
print(type(vowels))
# 输出的结果：
# ['a', 'e', 'i', 'o', 'u']
# <class 'list'> ==> 列表

print()

vowels2 = ('a', 'e', 'i', 'o', 'u')
print(vowels2)
print(type(vowels2))
# 输出的结果：
# ('a', 'e', 'i', 'o', 'u')
# <class 'tuple'>  ==> 元组

print()

# 元组由于有些类似列表，所以元组(tuple)也支持列表常用的中括号[]记法。
# 例如：
vowels[2] = 'I'
print(vowels)
# 输出的结果：
# ['a', 'e', 'I', 'o', 'u'] ==> 可见列表已经改变

# vowels2[2] = 'I'
# print(vowels2)
# 输出的结果：=====> 结果 报错。

print()

# 元组定义：
# 元组是一系列不可变的Python对象。
# 元组是一种序列，就像列表一样。
# 元组和列表之间的主要区别是元组不能像列表那样改变元素的值，可以简单地理解为“只读列表”。
# 元组使用小括号 --> ()，而列表使用方括号 --> [] 。

print()

# 1.列表通常用来存储相同类型的数据；而元组在实际开发中，通常用来存储不同类型的数据。
# 2.元组(Tuple)与列表相似，不同之处在于元组的元素不能修改；
# 3.元组表示多个元素组成的序列；用于存储一串信息，不同数据之间用 English 逗号 隔开；
# 4.元组的索引从0开始；

# 元组的语法定义：
# 变量名 = (数据1，数据2，数据3，...)
# eg:
# uesr_tuple = ("zhangsan", "lisi", "wangwu")

# 举个例子：
tup1 = ('physics', 'chemistry', 1997, 2000)
tup2 = (1, 2, 3, 4, 5 )
tup3 = "a", "b", "c", "d"

# 注意：        ！！！
# 编写一个包含单个值的元组，必须包含一个逗号，即使只有一个值(这是规范写法)
lizi = (50,)
print(lizi)
print(type(lizi))
# 输出的结果：
# (50,)
# <class 'tuple'>

print()

## 如果不加上逗号，则 输出的结果为 字符串
lizi2 = (50)
print(lizi2)
print(type(lizi2))
# 输出的结果：
# 50
# <class 'int'>

